package weibo.database;

import java.sql.*;
import java.util.*;
import weibo.database.ConnectionTools;
import weibo.model.FileMod;
import weibo.model.HeadMod;
import weibo.model.ReplyMod;
import weibo.model.TweetMod;
import weibo.model.UserMod;

public class FileDB {
//	INSERT INTO file (file.file_url)VALUES(?)
	private Connection conn = null;

	/*
	 * 获取连接
	 */
	public FileDB() {
		ConnectionTools db = new ConnectionTools();
		conn = db.getConn();
	}
	/*
	 * 创建文章
	 */
	public boolean CreateFile(String url,String title){
		String sql="INSERT INTO file (file.file_url,file.file_show,file_title)VALUES(?,1,?)";
		try {
			java.sql.PreparedStatement exec=conn.prepareStatement(sql);
			exec.setString(1,url);
			exec.setString(2,title);
			int result=exec.executeUpdate();
			if (result>1 || result==0){
				conn.close();
				return false;
			}
			return true;
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
			return false;
		}
	}
	/*
	 * 修改文章可见性
	 */
	public boolean changeShow(int fid,boolean show){
		String sql="UPDATE file set file_show=? where file_id=?";
		try {
			java.sql.PreparedStatement exec=conn.prepareStatement(sql);
			if (show){
				exec.setInt(1,1);
			}else{
				exec.setInt(1,0);
			}
			exec.setInt(2, fid);
			
			int result=exec.executeUpdate();
			if (result>1 || result==0){
				conn.close();
				return false;
			}
			conn.close();
			return true;
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
			return false;
		}
	}
	/*
	 * 查询最后?条文章
	 */
	public List<FileMod> QueryFile(int start,int len){
		List<FileMod> file=new ArrayList<FileMod>();
		String sql="select * from file order by file.file_id DESC LIMIT ?,?";
		
		try {
			java.sql.PreparedStatement exec = conn.prepareStatement(sql);
			exec.setInt(1, start);
			exec.setInt(2, len);
			ResultSet res=exec.executeQuery();
			while(res.next()){
				boolean show=false;
				if (res.getInt("file_show")!=0){
					show=true;
				}
				file.add(new FileMod(res.getInt("file_id"),
						res.getString("file_title"),
						res.getString("file_url"),
						show));
			}
			conn.close();
			return file;
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
			return null;
		}
		
	}
	/*
	 * 查询最后?条文章(只查可见)
	 */
	public List<FileMod> QueryFileShow(int len){
		List<FileMod> file=new ArrayList<FileMod>();
		String sql="select * from file where file_show=1 order by file.file_id DESC LIMIT 0,?";
		
		try {
			java.sql.PreparedStatement exec = conn.prepareStatement(sql);
			exec.setInt(1, len);
			ResultSet res=exec.executeQuery();
			while(res.next()){
				boolean show=false;
				if (res.getInt("file_show")!=0){
					show=true;
				}
				file.add(new FileMod(res.getInt("file_id"),
						res.getString("file_title"),
						res.getString("file_url"),
						show));
			}
			conn.close();
			return file;
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
			return null;
		}
		
	}
	
	/*
	 * 查询head表的内容
	 */
	public List<HeadMod> QueryHead(int len){
		List<HeadMod> head=new ArrayList<HeadMod>();
		String sql="select * from head LIMIT 0,?";
		
		try {
			java.sql.PreparedStatement exec = conn.prepareStatement(sql);
			exec.setInt(1, len);
			ResultSet res=exec.executeQuery();
			while(res.next()){
				head.add(new HeadMod(res.getInt("head_id"),
						res.getString("head_title"),
						res.getString("head_url")));
			}
			conn.close();
			return head;
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
			return null;
		}
		
	}
	/*
	 * 修改轮播图
	 */
	public boolean changeHead(int id,String title,String url){
		String sql="UPDATE head set head_title=?,head_url=? where head_id=?";
		try {
			java.sql.PreparedStatement exec=conn.prepareStatement(sql);
			exec.setString(1, title);
			exec.setString(2, url);
			exec.setInt(3, id);

			int result=exec.executeUpdate();
			if (result>1 || result==0){
				conn.close();
				return false;
			}
			conn.close();
			return true;
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
			return false;
		}
	}
}
